package eg.ci.mvn.service.api.constant;


import eg.ci.mvn.service.api.dict.DictItemBean;
import eg.ci.mvn.service.api.dict.IDictItem;
import lombok.Getter;

/**
 * 通行类型标志 0-无限制 1-禁止通过 2-允许通过 3-弹框确认
 * @author dev
 */
@Getter
public enum AccessRuleTypeEnum implements IDictItem {
    /** 无限制 */
    UNLIMITED("unlimited","无限制", "0"),
    /** 禁止通过 */
    FORBID("forbid","禁止通过", "1"),
    /** 允许通过 */
    ALLOW("allow","允许通过","2"),
    /** 弹框确认 */
    CONFIRM("confirm","弹框确认", "3"),


    /** 未知 */
    UNKNOWN("unknown", "未知", "-1");

    /** 字典枚举目录 */
    private final static String CATEGORY = "AccessRuleTypeEnum";
    /** 字典枚举目录 LABEL */
    private final static String CATEGORY_LABEL = "通行类型标志";

    /** 构造 */
    AccessRuleTypeEnum(String item, String itemLabel, String itemValue) {
        // 放入到内存
        putDictItem(DictItemBean.builder()
                .category(CATEGORY)
                .categoryLabel(CATEGORY_LABEL)
                .item(item)
                .itemLabel(itemLabel)
                .itemValue(itemValue)
                .build());
    }

    public static String getEnumItemLabel(final String itemValue) {
        return IDictItem.getEnumItemLabel(AccessRuleTypeEnum.class, itemValue, UNKNOWN.itemLabel() + "(" + itemValue+ ")");
    }

    public static AccessRuleTypeEnum getEnumAtItemValue(String itemValue) {
        return IDictItem.getEnum(AccessRuleTypeEnum.class, itemValue, UNKNOWN);
    }

}
